export const loggingConfig = {
  // 日志基础配置
  basic: {
    // 日志级别
    levels: {
      development: 'debug',
      testing: 'info',
      production: 'warn',
    },
    // 日志格式
    format: {
      timestamp: true,
      level: true,
      caller: true,
      trace: true,
      pretty: process.env.NODE_ENV !== 'production',
    },
  },

  // 文件日志
  file: {
    enabled: true,
    // 日志目录
    dir: 'D:\\livechat\\logs',
    // 日志分类
    categories: {
      // 应用日志
      app: {
        filename: 'app-%DATE%.log',
        datePattern: 'YYYY-MM-DD',
        maxSize: '100m',
        maxFiles: '30d',
      },
      // 访问日志
      access: {
        filename: 'access-%DATE%.log',
        datePattern: 'YYYY-MM-DD',
        maxSize: '200m',
        maxFiles: '15d',
      },
      // 错误日志
      error: {
        filename: 'error-%DATE%.log',
        datePattern: 'YYYY-MM-DD',
        maxSize: '100m',
        maxFiles: '30d',
      },
    },
  },

  // 错误处理
  error: {
    // 错误捕获
    capture: {
      unhandledRejection: true,
      uncaughtException: true,
      exitOnError: false,
    },
    // 错误通知
    notification: {
      // 钉钉通知
      dingtalk: {
        enabled: true,
        webhook: process.env.DINGTALK_ERROR_WEBHOOK,
        secret: process.env.DINGTALK_ERROR_SECRET,
        threshold: 'error', // error级别以上才通知
      },
      // 邮件通知
      email: {
        enabled: true,
        smtp: {
          host: 'smtp.qq.com',
          port: 465,
          secure: true,
          auth: {
            user: process.env.ERROR_EMAIL_USER,
            pass: process.env.ERROR_EMAIL_PASS,
          },
        },
        receivers: ['admin@example.com'],
      },
    },
  },

  // 监控集成
  monitor: {
    // ELK集成
    elk: {
      enabled: false, // 默认不启用
      elasticsearch: {
        node: 'http://localhost:9200',
      },
      kibana: {
        host: 'localhost:5601',
      },
    },
    // 阿里云日志服务
    aliyunSls: {
      enabled: true,
      region: 'cn-hangzhou',
      accessKeyId: process.env.ALIYUN_LOG_ACCESS_KEY_ID,
      accessKeySecret: process.env.ALIYUN_LOG_ACCESS_KEY_SECRET,
      project: 'livechat-logs',
      logstore: 'application',
    },
  },

  // 日志分析
  analysis: {
    // 错误聚合
    errorAggregation: {
      enabled: true,
      interval: '1h', // 聚合间隔
      threshold: 5, // 聚合阈值
      storage: {
        type: 'mysql',
        table: 'error_statistics',
      },
    },
    // 性能分析
    performance: {
      enabled: true,
      metrics: ['api_response_time', 'database_query_time', 'cache_hit_rate'],
      storage: {
        type: 'influxdb',
        database: 'performance_metrics',
      },
    },
  },

  // 日志清理
  cleanup: {
    enabled: true,
    // 自动清理
    auto: {
      schedule: '0 1 * * *', // 每天凌晨1点
      rules: {
        app: '30d', // 保留30天
        access: '15d', // 保留15天
        error: '90d', // 保留90天
        performance: '7d', // 保留7天
      },
    },
    // 压缩归档
    archive: {
      enabled: true,
      path: 'D:\\livechat\\archives\\logs',
      compress: true,
      retention: '1y', // 归档保留1年
    },
  },
}
